const initState = {
  todos: []
};

export default (state = initState, action) => {
  if (action.type === "INIT_TODO") {
    return {
      ...state,
      todos: action.todos
    };
  }

  if (action.type === "ADD_TODO") {
    return {
      ...state,
      todos: [...state.todos, action.todo]
    };
  }

  if (action.type === "DEL_TODO") {
    let newTodos = [...state.todos];
    let index = newTodos.findIndex(todo => todo.id === action.todo.id);
    newTodos.splice(index, 1);
    return {
      ...state,
      todos: newTodos
    };
  }

  if (action.type === "UPDATE_TODO") {
    let newTodos = [...state.todos];
    let index = newTodos.findIndex(todo => todo.id === action.todo.id);
    newTodos.splice(index, 1, action.todo);
    return {
      ...state,
      todos: newTodos
    };
  }

  return state;
};
